#pragma once

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>
#include <stdlib.h>
#include <assert.h>
#include <stdio.h>
#define SIZE 1024
#define SYNC_NOW  1
#define SYNC_LINE 2
#define SYNC_FULL 3




// 定义一个FILE结构体

typedef struct _FILE{
   int flags;    // 解释一下flags为刷新策略,包括（行刷新，全刷新，即时刷新）
   int fileno;  // 文件描述符
   char buffer[SIZE]; // 自定义的一个缓冲区，默认大小为 1024
   int cap;    // buffer的总容量
   int size;
}FILE_;


// 提供三个接口 包括 fopen、fwrite、fclose
FILE_ *fopen_(const char *path_name,const char *mode);
void fclose_(FILE_ * fp);
void fwrite_(const void *ptr,int num,FILE_ *fp);
void fflush_(FILE_ * fp);
